//0xb8 bytes (sizeof)
struct _DEVICE_OBJECT
{
SHORT Type; //0x0
USHORT Size; //0x2
LONG ReferenceCount; //0x4
struct
_DRIVER_OBJECT* DriverObject; //0x8
struct
_DEVICE_OBJECT* NextDevice; //0xc
struct
_DEVICE_OBJECT* AttachedDevice; //0x10
struct
_IRP* CurrentIrp; //0x14
struct
_IO_TIMER* Timer; //0x18
ULONG Flags; //0x1c
ULONG Characteristics; //0x20
struct
_VPB* Vpb; //0x24
VOID* DeviceExtension; //0x28
ULONG DeviceType; //0x2c
CHAR StackSize; //0x30
union
{
struct
_LIST_ENTRY ListEntry; //0x34
struct
_WAIT_CONTEXT_BLOCK Wcb; //0x34
} Queue; //0x34
ULONG AlignmentRequirement; //0x5c
struct
_KDEVICE_QUEUE DeviceQueue; //0x60
struct
_KDPC Dpc; //0x74
ULONG ActiveThreadCount; //0x94
VOID* SecurityDescriptor; //0x98
struct
_KEVENT DeviceLock; //0x9c
USHORT SectorSize; //0xac
USHORT Spare1; //0xae
struct
_DEVOBJ_EXTENSION* DeviceObjectExtension; //0xb0
VOID* Reserved; //0xb4
};